<template>
  <div style="height:400px">
    <!--添加新模块-->
    <nf-el-form
      v-model="model"
      :partModel="partModel"
      v-bind="moduleMeta"
      label-width="100px"
    >
    </nf-el-form>
  </div>
</template>

<script>
/* eslint-disable import/no-absolute-path */
import { defineComponent, reactive } from 'vue'

// 表单组件
import nfElForm from '/ctrl/nf-el-form/el-form-div.vue'

// 轻量级状态
import { state } from 'nf-state'

export default {
  name: 'plat-meta-module-mod'
}

</script>

<script setup>

const props = defineProps({
  moduleId: [Number, String],
  moduleInfo: Object
})

// 获取模块信息

/**
 * 导入数据生成表和字段的信息
 * 可以修改字段类型等信息
 * 往 webSQL 的 meta 里面添加表和字段
 * 如果设置模块ID的话，往 indexedDB 的 meta 里面添加 模块信息
 */

// 获取模块的表单
const moduleMeta = state.platMeta.module[150].forms[15010]
moduleMeta.formColCount = 2
moduleMeta.colOrder = [
  100010, 100020,
  100060, 100030,
  100080, 100040,
  100070
]

// 设置上级模块
const parentModule = moduleMeta.itemMeta[100020]

parentModule.controlType = 163
parentModule.optionList.length = 0

state.projectMeta.menu.forEach(menu => {
  if (menu.moduleLevel === 1) {
    // 一级
    parentModule.optionList.push(
      {
        value: menu.id,
        label: menu.title,
        level: menu.moduleLevel
      }
    )
  } else {
    // 二级，找到父级，插入
    const index = parentModule.optionList.findIndex((a) => a.value === menu.parentId)
    parentModule.optionList.splice(index + 1, 0, {
      value: menu.id,
      label: menu.title,
      level: menu.moduleLevel
    })
  }
})

/*
parentModule.controlType = 162
parentModule.optionList.length = 0

state.menus.forEach(menu => {
  if (menu.moduleLevel === 1) {
    // 一级
    parentModule.optionList.push(
      {
        value: menu.id,
        label: menu.title,
        children: []
      }
    )
  } else {
    // 二级，找到父级的children，push
    const index = parentModule.optionList.findIndex((a) => a.value === menu.parentId)
    parentModule.optionList[index].children.push({
      value: menu.id,
      label: menu.title
    })
  }
})
*/
// 表单控件的 model
const model = props.moduleInfo.moduleModal
// 定义局部的 model
const partModel = reactive({})

</script>
